// Define the fonts used in the Pen
@import url(https://fonts.googleapis.com/css?family=Francois+One);
@import url(https://fonts.googleapis.com/css?family=PT+Sans);

@font-face {
  font-family: 'Audiowide';
  font-style: normal;
  font-weight: 400;
  src: local('Audiowide'), local('Audiowide-Regular'), url(http://themes.googleusercontent.com/static/fonts/audiowide/v2/8XtYtNKEyyZh481XVWfVOj8E0i7KZn-EPnyo3HZu7kw.woff) format('woff');
}


$color-bg: #fff; //background for the demo

body {
	font-size: 62.5%;
	background-color: $color-bg;
  margin: 10px;
  border: 1px solid #333;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

h1, h2, h3 {
	font-family: 'PT Sans', sans-serif;
	text-transform: uppercase;
}

h1 {
  font-size: 2.4em;
  background-color: rgba(41, 41, 41, 1);
  text-align: center;
  padding: 20px;
  margin: 0;
  color: #fff;
  
  a {
    display: block;
    margin-top: 10px;
    text-transform: none;
    color: #aaa;
    font-size: 16px;
    text-decoration: none;
  }
}

.headingOuter {
	background: #f1f1f1;
	text-align: center;
	margin-top: 50px;
	margin-bottom: 0;
	padding: 10px;
	border-top: 1px solid #333;
	border-bottom: 1px solid #333;

	font-size: 1.6em;

	&:first-child {
		margin-top: 0;
	}
  h1 + & {
    margin-top: 0;
  }
}

/* =====================================================
   Some defaults across all toggle demos
   ===================================================== */

.toggle {
	display: block;
	text-align: center;
	margin-top: 40px;
  user-select: none;
}
	.toggle--checkbox {
    display: none;
	}
	.toggle--btn {
		display: block;
		margin: 0 auto;

		font-size: 1.4em;

		transition: all 350ms ease-in;

		&:hover {
			cursor: pointer;
		}
	}

	.toggle--btn,
	.toggle--checkbox,
	.toggle--feature {
		&,
		&:before,
		&:after {
			transition: all 250ms ease-in;
		}
		&:before,
		&:after {
			content: '';
			display: block;
		}
	}


/* ===================================================
   Day/Night and Gender toggle buttons
   =================================================== */

	$toggleHeight: 70px;
	$toggleWidth: 125px;
	$borderWidth: 5px;
	$toggleBtnRadius: $toggleHeight - 14px;

	$bgColor--night: #3c4145;
	$borderColor--night: #1c1c1c;
	$toggleBtn-bgColor--night: #fff;
	$toggleBtn-borderColor--night: #e3e3c7;

	$bgColor--day: #9ee3fb;
	$borderColor--day: #86c3d7;
	$toggleBtn-bgColor--day: #ffdf6d;
	$toggleBtn-borderColor--day: #e1c348;

	$cloud-borderColor: #d3d3d3;
	$cloud-bgColor: #fff;

	.toggle--daynight,
	.toggle--like {
		.toggle--btn {
			position: relative;
			height: $toggleHeight;
			width: $toggleWidth;
			border-radius: $toggleHeight;

			//toggle button
			&:before {
				position: absolute;
				top: 2px;
				left: 4px;
				width: $toggleBtnRadius;
				height: $toggleBtnRadius;
				border-radius: 50%;
			}
		}
	}

	.toggle--daynight {
		.toggle--btn {
			border: $borderWidth solid $borderColor--night;
			background-color: $bgColor--night;

			//toggle button
			&:before {
				background-color: $toggleBtn-bgColor--night;
				border: $borderWidth solid $toggleBtn-borderColor--night;
			}
			&:after {
				position: absolute;
				top: 62%;
				left: $toggleWidth - ($toggleBtnRadius) - ($borderWidth * 2) - 20px;
				z-index: 10;
				width: $toggleBtnRadius / 5;
				height: $toggleBtnRadius / 5;
				opacity: 0;
				background-color: $cloud-bgColor;
				border-radius: 50%;

				//crazy ass box-shadow to make the cloud
				box-shadow: $cloud-bgColor 0 0,
							$cloud-bgColor 3px 0,
							$cloud-bgColor 6px 0,
							$cloud-bgColor 9px 0,
							$cloud-bgColor 11px 0,
							$cloud-bgColor 14px 0,
							$cloud-bgColor 16px 0,
							$cloud-bgColor 21px -1px 0 1px,
							$cloud-bgColor 16px -7px 0 -2px,
							$cloud-bgColor 7px -7px 0 1px,

							$cloud-borderColor 0 0 0 4px,
							$cloud-borderColor 6px 0 0 4px,
							$cloud-borderColor 11px 0 0 4px,
							$cloud-borderColor 16px 0 0 4px,
							$cloud-borderColor 21px -1px 0 5px,
							$cloud-borderColor 16px -7px 0 1px,
							$cloud-borderColor 7px -7px 0 5px;

				transition: opacity 100ms ease-in;
			}
		}

		@keyframes starry_star {
			50% {
				background-color: rgba(255,255,255,0.1);
				box-shadow: #fff 30px -3px 0 0,
							#fff 12px 10px 0 -1px,
							rgba(255,255,255,0.1) 38px 18px 0 1px,
							#fff 32px 34px 0 0,
							rgba(255,255,255,0.1) 20px 24px 0 -1.5px,
							#fff 5px 38px 0 1px;
			}
		}
		@keyframes bounceIn {
			0% {
				opacity: 0;
				transform: scale(.3);
			}
			50% {
				opacity: 100;
				transform: scale(1.1);
			}
			55% {
				transform: scale(1.1);
			}
			75% {
				transform: scale(.9);
			}
			100% {
				opacity: 100;
				transform: scale(1);
			}
		}
		//stars
		.toggle--feature {
			display: block;
			position: absolute;
			top: 9px;
			left: 52.5%;
			z-index: 20;
			width: 4px;
			height: 4px;
			border-radius: 50%;
			background-color: #fff;

			box-shadow: rgba(255,255,255,0.1) 30px -3px 0 0,
						rgba(255,255,255,0.1) 12px 10px 0 -1px,
						#fff 38px 18px 0 1px,
						rgba(255,255,255,0.1) 32px 34px 0 0,
						#fff 20px 24px 0 -1.5px,
						rgba(255,255,255,0.1) 5px 38px 0 1px;

			animation: starry_star 5s ease-in-out infinite;

			&:before {
				position: absolute;
				top: -2px;
				left: -25px;
				width: 18px;
				height: 18px;
				background-color: $toggleBtn-bgColor--night;
				border-radius: 50%;
				border: 5px solid $toggleBtn-borderColor--night;

				box-shadow: $toggleBtn-borderColor--night -28px 0 0 -3px,
							$toggleBtn-borderColor--night -8px 24px 0 -2px;

				transform-origin: -6px 130%;
			}
		}

		//what happens once checkbox is checked
		.toggle--checkbox:checked {
			 & + .toggle--btn {
				background-color: $bgColor--day;
				border: $borderWidth solid $borderColor--day;

				&:before {
					left: $toggleWidth - ($toggleBtnRadius) - ($borderWidth * 2) - 4px;
					background-color: $toggleBtn-bgColor--day;
					border: $borderWidth solid $toggleBtn-borderColor--day;
				}
				&:after {
					opacity: 100;
					animation-name: bounceIn;
					animation-duration: 0.60s;
					animation-delay: 0.10s;
					animation-fill-mode: backwards;
					animation-timing-function: ease-in-out;
				}

				> .toggle--feature {
					opacity: 0;
					box-shadow: rgba(255,255,255,0.1) 30px -3px 0 -4px,
								rgba(255,255,255,0.1) 12px 10px 0 -5px,
								#fff 38px 18px 0 -3px,
								rgba(255,255,255,0.1) 32px 34px 0 -4px,
								#fff 20px 24px 0 -5.5px,
								rgba(255,255,255,0.1) 5px 38px 0 -3px;
					animation: none;

					&:before {
						left: 25px;
						transform: rotate(70deg);
					}
				}
			}
		}
	}

	/* ==================================================
	   Like specific styling
	   ================================================== */

	$bgColor--sad: #3498db;
	$borderColor--sad: #0865B0;

	$bgColor--happy: #e25d5d;
	$borderColor--happy: #AD1000;

	$emojiWidth: 36px;
	$emojiBgColor: #f2dd68;
	$emojiBorderColor: #e5ce5e;
	$emojiColor: #995710;
	$emojiColorAlt: #d8aa2b;

	$toggleFeaturePosition--sad: ($toggleBtnRadius/2) - 14;
	$toggleFeaturePosition--happy: 53px;

	.toggle--like {
		position: relative;

		.toggle--btn {
			border: $borderWidth solid $borderColor--sad;
			background-color: $bgColor--sad;

			//toggle button
			&:before {
				background-color: $emojiBgColor;
				border: $borderWidth solid $emojiBorderColor;
			}
		}

		.toggle--feature {
			position: absolute;
			left: 14px;
			top: 32%;
			width: 7px;
			height: 7px;
			border-radius: 50%;
			background-color: $emojiColor;
			box-shadow: ($emojiWidth - 8) 0 0 0 $emojiColor;

			&:before {
				position: absolute;
				left: 0;
				top: 11px;
				width: $emojiWidth;
				height: 17px;
				background-color: $emojiColor;

				border-radius: $emojiWidth $emojiWidth 0 0;
			}
			&:after {
				position: absolute;
				left: 9px;
				top: 21px;
				width: 17px;
				height: 7px;
				background-color: $emojiColorAlt;

				border-radius: 17px 17px 0 0;
			}

		}

		//what happens once checkbox is checked
		.toggle--checkbox:checked {
			 & + .toggle--btn {
				background-color: $bgColor--happy;
				border: $borderWidth solid $borderColor--happy;

				//toggle button
				&:before {
					transform: translate($toggleWidth - ($toggleBtnRadius) - ($borderWidth * 2) - 8px, 0);
				}

				& .toggle--feature {
					transform: translate($toggleFeaturePosition--happy, 0);

					&:before {
						border-radius: 0 0 $emojiWidth $emojiWidth;
						top: 11px;
					}
					&:after {
						top: 21px;
						border-radius: 50%/50%;
					}
				}
			}
		}
	}

/* ====================================================
   Text toggle button
   ==================================================== */

	$toggleHeight: 70px;
	$toggleWidth: 180px;

	$toggle-borderColor: #8c8c8c;
	$toggle-shadowColor: #999;

	$activeTextColor: #db4c00;
	$inactiveTextColor: #999;

	.toggle--text {
		.toggle--btn {
			position: relative;
			width: $toggleWidth;
			height: $toggleHeight;
			font-family: 'PT Sans', Sans Serif;
			text-transform: uppercase;
			font-weight: bold;

			border-radius: 40px;
			border: 1px solid $toggle-borderColor;
			border-right: 2px solid $toggle-borderColor;

			box-shadow: inset ($toggleWidth/2) 0 10px rgba(255, 255, 255, 0.6),
						inset -3px 3px 18px -2px $toggle-borderColor,
						0 0 15px #ccc,

						0px -5px 16px 1px #ddd,
						-5px -5px 16px 1px #ddd,
						5px -5px 16px 1px #ddd,
						-5px -5px 16px 1px #ddd,
						5px -5px 16px 1px #ddd,

						17px 9px 0 -5px rgba(255, 255, 255, 0.6),
						-3px 6px 12px -7px #000,


						//outlines
						0 0 0 14px #fff,
						0 0 0 15px $toggle-shadowColor;

			&:before,
			&:after {
				position: absolute;
				top: 50%;
				transform: translateY(-50%);
			}
			&:before {
				content: attr(data-label-on);
				left: 15%;
				color: $inactiveTextColor;


			}
			&:after {
				content: attr(data-label-off);
				right: 15%;
				color: $activeTextColor;


			}
		}

		.toggle--checkbox:checked {
			& + .toggle--btn {
				border-left: 2px solid $toggle-borderColor;
				border-right: 1px solid $toggle-borderColor;

				box-shadow: inset ($toggleWidth/2) 0 10px rgba(255, 255, 255, 0),
						inset 3px 3px 18px -2px $toggle-borderColor,
						0 0 15px #ccc,

						0px -5px 16px 1px #ddd,
						-5px -5px 16px 1px #ddd,
						5px -5px 16px 1px #ddd,
						-5px -5px 16px 1px #ddd,
						5px -5px 16px 1px #ddd,

						-17px 9px 0 -5px rgba(255, 255, 255, 0.6),
						3px 6px 12px -7px #000,


						//outlines
						0 0 0 14px #fff,
						0 0 0 15px $toggle-shadowColor;


				&:before {
					color: $activeTextColor;

				}
				&:after {
					color: $inactiveTextColor;

				}
			}
		}

	}


/* =====================================================
   Toggle - knob button style
   ===================================================== */

	$toggleHeight: 40px;
	$toggleWidth: 120px;

	$toggleBtnRadius: 48px;
	$toggleBtnColor: #f1f1f1;

	$toggle-bgColor--inactive: #a2a2a2;
	$toggle-bgColor--active: #a4bf4d;

	$toggle-textColor: #fff;

	.toggle--knob {

		& .toggle--btn {
			position: relative;
			width: $toggleWidth;
			height: $toggleHeight;

			font-family: 'PT Sans', Sans Serif;
			text-transform: uppercase;
			color: $toggle-textColor;

			background: $toggle-bgColor--active;
			box-shadow: inset 0 20px 40px -10px #7b9d25;
			border-radius: 40px;

			//contains the actual knob part of the button and the 'on' text
			&:before {
				display: block;
				position: absolute;
				top: 50%;
				left: 60%;
				transform: translateY(-50%);

				width: $toggleBtnRadius;
				height: $toggleBtnRadius;
				border-radius: 50%;
				background: $toggleBtnColor;
				box-shadow: 0 4px 10px 0 #999,
							inset 0 10px 10px 8px rgba($toggleBtnColor, 0.6),
							inset 0 0 8px 0px #333,
							inset 0 0 0 13px #ccc,
							inset 0 0 0 14px $toggleBtnColor;

				text-indent: -100%;
			}
		}

		& .toggle--feature {
			position: relative;
			display: block;
			overflow: hidden;
			height: $toggleHeight;
			text-shadow: 0 1px 2px #666;

			&:before,
			&:after {
				position: absolute;
				top: 50%;
				transform: translateY(-50%);
			}
			&:before {
				content: attr(data-label-on);
				left: 20%;
			}
			&:after {
				content: attr(data-label-off);
				right: -60%;
			}
		}

		& .toggle--checkbox {
			&:checked {
				& + .toggle--btn {
					background: $toggle-bgColor--inactive;
					box-shadow: inset 0 20px 40px -10px #7e7e7e;

					&:before { left: 0; }

					& .toggle--feature {
						&:before	{ left: -60%; }
						&:after		{ right: 20%; }
					}
				}
			}
		}
	}

/* =====================================================
   Toggle - switch stylee
   ===================================================== */

	$toggleHeight: 44px;
	$toggleWidth: 120px;

	$toggleBtnWidth: 52px;
	$toggleBtnColor: #2b2e3a;

	$toggle-bgColor--inactive: #ca5046;
	$toggle-bgColor--active: #a4bf4d;

	$toggle-textColor: #fff;

	.toggle--switch {

		& .toggle--btn {
			position: relative;
			width: $toggleWidth;
			height: $toggleHeight;

			font-family: 'PT Sans', Sans Serif;
			text-transform: uppercase;
			color: $toggle-textColor;

			// background: $toggle-bgColor--inactive;

			background: linear-gradient(90deg, $toggle-bgColor--active 0%, $toggle-bgColor--active 50%, $toggle-bgColor--inactive 50%, $toggle-bgColor--inactive 200%);
			background-position: -80px 0;
			background-size: 200% 100%;
			box-shadow: inset 0 0px 22px -8px #111;


			&,
			&:before {
				border-radius: 4px;
			}

			//contains the actual knob part of the button and the 'on' text
			&:before {
				display: block;
				position: absolute;
				top: 50%;
				left: 0;
				transform: translateY(-50%);

				width: $toggleBtnWidth;
				height: $toggleHeight;
				border: 2px solid #202027;
				background-image: linear-gradient(90deg, transparent 50%, rgba(255,255,255,.15) 100%);
				background-color: $toggleBtnColor;

				background-size: 5px 5px;

				text-indent: -100%;
			}
		}

		& .toggle--feature {
			position: relative;
			display: block;
			overflow: hidden;
			height: $toggleHeight;
			text-shadow: 0 1px 2px #666;

			&:before,
			&:after {
				position: absolute;
				top: 50%;
				transform: translateY(-50%);
			}
			&:before {
				content: attr(data-label-on);
				left: -60%;
			}
			&:after {
				content: attr(data-label-off);
				right: 16%;
			}
		}

		& .toggle--checkbox {
			&:checked {
				& + .toggle--btn {
					// background: $toggle-bgColor--active;

					background-position: 0 0;

					&:before { left: calc(100% - #{$toggleBtnWidth}); }

					& .toggle--feature {
						&:before	{ left: 20%; }
						&:after		{ right: -60%; }
					}
				}
			}
		}
	}


/* ======================================================
   Push button toggle
   ====================================================== */

	$toggleBtnRadius: 50px;
	$toggleBtnColor: #f9f8f6;

	$toggleShadowColor: #333;
	$toggleActiveColor: #FF9900;
	$toggleInactiveColor: #ccc;

	.toggle--push {
		& .toggle--btn {
			position: relative;
			width: $toggleBtnRadius;
			height: $toggleBtnRadius;
			background-color: $toggleBtnColor;
			border-radius: 50%;

			box-shadow: 0 5px 10px 0px $toggleShadowColor,
						0 15px 20px 0px lighten($toggleShadowColor, 60%);

			&,
			&:before,
			&:after {
				transition-duration: 150ms;
			}

			&:before {
				position: absolute;
				left: 50%;
				top: 50%;
				transform: translate(-50%, -50%);
				width: $toggleBtnRadius / 2.2;
				height: $toggleBtnRadius / 2.2;
				border-radius: 50%;
				background-color: $toggleActiveColor;

				box-shadow: inset 0 0 0 5px $toggleInactiveColor,
							inset 0 0 0 14px $toggleBtnColor;
			}
			&:after {
				position: absolute;
				left: 50%;
				top: 35%;
				transform: translate(-50%, -50%);
				width: 4px;
				height: 12px;
				background-color: $toggleInactiveColor;
				box-shadow: 0 0 0 2.5px $toggleBtnColor;
			}

			&:hover {
				&:before {
					box-shadow: inset 0 0 0 5px darken($toggleInactiveColor, 10%),
						inset 0 0 0 14px $toggleBtnColor;
				}
				&:after {
					background-color: darken($toggleInactiveColor, 10%);
				}
			}
		}

		& .toggle--checkbox {
			&:checked {
				& + .toggle--btn {
					box-shadow: 0 2px 5px 0px lighten($toggleShadowColor, 30%),
						0 15px 20px 0px transparent;

					&:before {
						box-shadow: inset 0 0 0 5px $toggleActiveColor,
									inset 0 0 0 14px $toggleBtnColor;
					}
					&:after {
						background-color: $toggleActiveColor;
					}
				}
			}
		}
	}

	$toggleBgColor: #111;
	$toggleBtnColor: #dfdfdf;

	$toggleActiveColor: #0094e0;
	$toggleInactiveColor: #aaa;

	.toggle--push--glow {
		background: $toggleBgColor;
		padding: 50px 0;
		margin-bottom: -50px;

		& .toggle--btn {
			background-color: $toggleBtnColor;
			box-shadow: 0 5px 10px 0px $toggleShadowColor,
						0 0 0 3px lighten($toggleBgColor, 20%),
						0 0 8px 2px transparent,
						0 0 0 6px lighten($toggleBgColor, 50%);

			&:before {
				box-shadow: inset 0 0 0 5px $toggleInactiveColor,
							inset 0 0 0 14px $toggleBtnColor;
			}
			&:after {
				background-color: $toggleInactiveColor;
				box-shadow: 0 0 0 2.5px $toggleBtnColor;
			}

			&:hover {
				&:before {
					box-shadow: inset 0 0 0 5px darken($toggleInactiveColor, 20%),
								inset 0 0 0 14px $toggleBtnColor;
				}
				&:after {
					background-color: darken($toggleInactiveColor, 20%);
				}
			}
		}

		& .toggle--checkbox {

			&:checked {
				& + .toggle--btn {
					box-shadow: 0 0px 8px 0 darken($toggleActiveColor, 10%),
								0 0 0 3px $toggleActiveColor,
								0 0 30px 0 $toggleActiveColor,
								0 0 0 6px lighten($toggleBgColor, 40%);

					&:before {
						box-shadow: inset 0 0 0 5px $toggleActiveColor,
									inset 0 0 0 14px $toggleBtnColor;
					}
					&:after {
						background-color: $toggleActiveColor;
					}
				}
			}
		}
	}


/* ======================================================
   Neon toggle
   ====================================================== */

	@keyframes neon {
	  0% {
	    text-shadow: 0 0 10px #fff,
	               0 0 15px  #fff,
	               0 0 25px  #fff,
	               0 0 40px  #FF9900,
	               0 0 70px  #FF9900,
	               0 0 90px  #FF9900,
	               0 0 90px  #FF9900;
	  }
	  100% {
	    text-shadow: 0 0 5px #fff,
	               0 0 10px #fff,
	               0 0 15px #fff,
	               0 0 20px #FF9900,
	               0 0 35px #FF9900,
	               0 0 40px #FF9900,
	               0 0 50px #FF9900;
	  }
	}

	$textColor--active: #f1f1f1;
	$textColor--inactive: #333;


	.toggle--neon {
		background-color: #222;
		margin-top: 0;
		padding: 50px 0;

		& .toggle--btn {
			font-family: Audiowide;
			text-transform: uppercase;
			font-size: 6.2em;
			color: $textColor--inactive;

			// text-shadow: -1px -1px 1px #111, 1px 1px 1px #444;

			text-shadow: 0 0 10px transparent,
	               0 0 15px  transparent,
	               0 0 25px  transparent,
	               0 0 40px  transparent,
	               0 0 70px  transparent,
	               0 0 90px  transparent,
	               0 0 90px  transparent;

			&:before,
			&:after {
				display: inline-block;
				margin: 0 20px;
				transition: all 220ms ease-in-out;
			}

			&:before {
				content: attr(data-label-off);
				animation: neon 1.5s ease-in-out infinite alternate;
				animation-delay: 90ms;
				color: $textColor--active;
			}
			&:after {
				content: attr(data-label-on);
			}
		}

		& .toggle--checkbox {
			&:checked {
				& + .toggle--btn {
					&:before {
						animation: none;
						color: $textColor--inactive;
					}
					&:after {
						animation: neon 1.5s ease-in-out infinite alternate;
						animation-delay: 90ms;
						color: $textColor--active;
					}
				}
			}
		}
	}